<?php
//***********************************************************************
// Назначение: Передача товаров из 1С в virtuemart
// Модуль: system/cat_img.php - Класс создания картинки категорий
// Автор оригинала: Дуденков М.В. (email: mihail@termservis.ru)
// Помогали разрабатывать:	Alexandr Datsiuk
//							Павел Михнев 
//                          CALEORT
// Авторские права: Использовать, а также распространять данный скрипт
// 					разрешается только с разрешением автора скрипта
//***********************************************************************

if ( !defined( 'VM_1CEXPORT' ) )
{
	echo "<h1>Несанкционированный доступ</h1>Ваш IP уже отправлен администратору.";
	die();
}

function Ins_cat_img() 
{
	global $log, $db, $dba, $id_admin;
	
	$sql = 'SELECT * FROM #__virtuemart_categories ORDER BY `virtuemart_category_id` DESC';
	$db->setQuery ( $sql );
	$rows = $db->loadObjectList ();
	foreach ( $rows as $cat_rows ) 
	{
		if (VM_VERVM == '2')
		{
			$cat_id = $cat_rows->virtuemart_category_id;
		}
		elseif (VM_VERVM == '1')
		{
			$cat_id = $cat_rows->category_id;
			$cat_img = $cat_rows->category_full_image;
			$cat_tn_img = $cat_rows->category_thumb_image;
		}
		$cheack = false;
		$change_cimg = false;
				
			$sql = 'SELECT category_name FROM #__virtuemart_categories'. LANG .' where `virtuemart_category_id` = ' . $cat_id;
			$db->setQuery ( $sql );
			$cat_name = $db->loadResult ();
		
		
				
		$log->addEntry ( array ('comment' => '-------------------'.$cat_name.'-------------------' ) );
		
		
			$sql = 'SELECT `id` FROM #__virtuemart_category_medias where `virtuemart_category_id` = ' . $cat_id;
			$db->setQuery ( $sql );
			$c_media = $db->loadResult ();
			if (isset($c_media) )
			{
				$log->addEntry ( array ('comment' => 'Этап 4.1.4) Категория '.$cat_name.' уже имеет картинку' ) );
				$make_cimg = false;
			}
			else
			{
				$log->addEntry ( array ('comment' => 'Этап 4.1.4) Добавляем картинку в категорию '.$cat_name ) );
				$make_cimg = true;
			}
		
		
		if ($make_cimg == true)
		{
			$cat_id_new = $cat_id;
			$mediap_id = '';
			$cat_ch_id = array();
			$count_id = 0;
			$cat_subimg = false;
				
			do
			{
				$sql = 'SELECT * FROM #__virtuemart_product_categories where virtuemart_category_id = ' . $cat_id_new;
				$db->setQuery ( $sql );
				$pid = $db->loadObjectList ();
				$prod_id = array();
				
				if (isset($pid) and $pid != '')
				{
					foreach ( $pid as $prodid ) 
					{
							$sql = 'SELECT `virtuemart_media_id` FROM #__virtuemart_product_medias where virtuemart_product_id = '. (int)$prodid->virtuemart_product_id;
							$db->setQuery ( $sql );
							//$log->addEntry ( array ('comment' => $sql ) );
							$med_id = $db->loadResult ();
							if (isset($med_id))
							{
								$prod_id[] = $med_id;
							}
					}
					
					if(count($prod_id) > 1)
					{
						if (VM_CAT_RAND == "r")
						{
							$ch = count($prod_id) - 1;
							$c_rnd = rand(0, $ch);
							$p_id = $prod_id[$c_rnd];
						}
						else
						{
							$p_id = $prod_id[0];
						}
					}
					elseif (count($prod_id) == 1)
					{
						$p_id = $prod_id[0];
					}
					else
					{
						$sql = 'SELECT * FROM #__virtuemart_category_categories where category_parent_id = ' . $cat_id_new;
						$db->setQuery ( $sql );
						$cat_chid = $db->loadObjectList ();
						foreach ($cat_chid as $ch_cid)
						{
								$sql = 'SELECT virtuemart_media_id FROM #__virtuemart_category_medias where virtuemart_category_id = '. $ch_cid->category_child_id;
								$db->setQuery ( $sql );
								$media_p_id = $db->loadObject ();
								if (isset($media_p_id) and $media_p_id != "")
								{
									$mediap_id = $media_p_id->virtuemart_media_id;
									$change_cimg = true;
									$cat_subimg = true;
									$cheack = true;
									break;
								}
						}
						$change_cimg = false;
						break;
					}
					
					if ($p_id != '' or !empty($p_id))
					{
						$mediap_id = $p_id;
						$cheack = true;
						break;
					}
				}
				else
				{
					$sql = 'SELECT * FROM #__virtuemart_category_categories where category_parent_id = ' . $cat_id_new;
					$db->setQuery ( $sql );
					$cat_chid = $db->loadObjectList ();
					foreach ($cat_chid as $ch_cid)
					{
							$sql = 'SELECT virtuemart_media_id FROM #__virtuemart_category_medias where virtuemart_category_id = ' . $ch_cid->category_child_id;
							$db->setQuery ( $sql );
							$media_p_id = $db->loadObject ();
							if (isset($media_p_id) and $media_p_id != "")
							{
								$mediap_id = $media_p_id->virtuemart_media_id;
								$change_cimg = true;
								$cat_subimg = true;
								$cheack = true;
								break;
							}
					}
					$change_cimg = false;
					break;
				}
				
				if ($cat_id_new == false)
				{
					$change_cimg = false;
					break;
				}
				
				$count_id = $count_id + 1;
			}
			while($cheack = true);
			
			
				$sql = 'SELECT * FROM #__virtuemart_medias where `virtuemart_media_id` = ' . $mediap_id;
				$db->setQuery ( $sql );
				$media = $db->loadObject ();
					
				if($media) 
				{
					if (!$cat_subimg)
					{
						$file = $media->file_url;
						$newfile = str_replace(DS."product".DS, DS."category".DS, $media->file_url);
							
						if (file_exists($newfile))
						{
							unlink ($newfile);
						}
						if (!copy($file, $newfile)) {
							$log->addEntry ( array ('comment' => 'не удалось скопировать '.$file.'...\n' ) );
						}
							
						$file_tb = $media->file_url_thumb;
						$newfile_tb = str_replace(DS."product".DS, DS."category".DS, $media->file_url_thumb);
						
						if (file_exists($newfile_tb))
						{
							unlink ($newfile_tb);
						}
						if (!copy($file_tb, $newfile_tb)) {
							$log->addEntry ( array ('comment' => 'не удалось скопировать '.$file_tb.'...\n' ) );
						}
					}
					else
					{
						$newfile = $media->file_url;
						$newfile_tb = $media->file_url_thumb;
					}
						
						
					$ins = new stdClass ();
					$ins->virtuemart_media_id = NULL;
					$ins->virtuemart_vendor_id = '1';
					$ins->file_title = (string)$cat_name;
					$ins->file_description = (string)$cat_name;
					$ins->file_meta = '';
					$ins->file_mimetype = $media->file_mimetype;
					$ins->file_type = 'category';
					$ins->file_url = $newfile;
					$ins->file_url_thumb = $newfile_tb;
					$ins->file_is_product_image = '0';
					$ins->file_is_downloadable = '0';
					$ins->file_is_forSale = '0';
					$ins->file_params = '';
					$ins->ordering = NULL;
					$ins->shared = '0';
					$ins->published = '1';
					$ins->created_on = date ('Y-m-d H:i:s');
					$ins->created_by = $id_admin;
					$ins->modified_on = date ('Y-m-d H:i:s');
					$ins->modified_by = $id_admin;
						
					//$log->addEntry ( array ('comment' => $cat_name .' / '. $media->file_mimetype .' / '. $media->file_url .' / '. $media->file_url_thumb ) );
								
					if (! $db->insertObject ( '#__virtuemart_medias', $ins, 'virtuemart_media_id' )) 
					{
						$log->addEntry ( array ('comment' => 'Этап 4.1.4) Неудача: Невозможно вставить запись в таблицу - virtuemart_medias' ) );
						echo 'failure\n';
						echo 'error mysql';
					}
							
					$media_id = ( int ) $ins->virtuemart_media_id;
									
					$ins = new stdClass ();
					$ins->id = NULL;
					$ins->virtuemart_category_id = ( int )$cat_id;
					$ins->virtuemart_media_id = (int)$media_id;
					$ins->ordering = '0';
						
					if (! $db->insertObject ( '#__virtuemart_category_medias', $ins )) 
					{
						$log->addEntry ( array ('comment' => 'Этап 4.1.4) Неудача: Невозможно вставить запись в таблицу - virtuemart_product_medias' ) );
						echo 'failure\n';
						echo 'error mysql';
					}
					
					$change_cimg = true;
				}
				else
				{
					$change_cimg = false;
				}

				
			if ($change_cimg == true)
			{
				$log->addEntry ( array ('comment' => 'Этап 4.1.4) Для категории '.$cat_name.' добавлена картинка' ) );
			}
			elseif ($change_cimg == false)
			{
				$log->addEntry ( array ('comment' => 'Этап 4.1.4) Для категории '.$cat_name.' нет картинки' ) );
			}
		}
	}
}
?>